
*sequence
 순차적으로 증가되는 값을 다루는 객체 . 이것을 이용해서 각 레코드를 구분하는 
 일련번호를 자동으로 생성할 수 있다. 테이블과는 별개로 생성되어 특정 시퀀스를 
 여러 테이블에 사용가능하다. 
 MSSQL: identity
 MySQL: autoincrement
 
 *Sequence 만들기
    create sequence 이름
       start with 1 
       increment by 1 
       no cache;
       
  
  *sequence 확인
    select * from user_sequences;
    
    
   *sequence 삭제
     drop sequence 이름 ; 
     
    *실습
    hr
    exam
    collage
    
     create sequence hr
      start with 1 -----------시작값
      increment by 1--------증가값
      nocache;--------------캐시사용여부 
      
     create sequence exam
      start with 1
      increment by 1
      nocache;
      
      create sequence collage  
       start with 1
       increment by 1
       nocache;
      
      
    select * from user_sequences;
    
  *DML 
  데이터베이스에 데이터를 입력 조회 수정 삭제하는 
  명령 
  insert select update delete
  
  *insert 
   하나의 레코드를 추가함
   테이블의 모든 필드에 값을 추가할 때에는 필드 목록은 생략
   가능하다. 
   필드 목록과 values 절의 값은 1:1 대응
   문자, 날짜는 '  '  를 이용해서 값을 추가 한다. 
   
   * 모든 필에 값 추가 
     insert into 테이블 이름
     values (필드값1, 필드값2, '필드갑3'--문자값은 이렇게)
   
     
   --예)   
  create table exam06(
  courseid number(20),
  subjectid varchar2(10),
  coursenum number(10),
  title varchar2(25),
  numofcredits number(5)
  );
   courseid subjecid coursenum title numofcredits
 
   insert into exam06
   values (11111,'csci',1301,'introduction to java',4);----1대일대응으로한다. 
   
   *일부 필드에 값 추가 
   inserts into 테이블명 (필드1,필드2,'필드3')
   values (값1, 값2, '값');
   --예)
  
   insert into exam06 (courseid, subjectid, coursenum)
   values (11112,'csci',1302);
   
   *null 값 추가
    insert into exam06
    values ( null,null,null,null,null  );
   
   
   *sequence 추가 
    가짜 필드 nextval을 이용한다
    시퀀스이름.nextval
   
    insert into exam06(courseid)
    values (exam.nextval)
    
    
 
    create table 학생(
    순번 number(10),
    학번 number(10),
    이름 varchar2(10),
    주소 varchar2(25),
    나이 number(10),
    생년월일 varchar2,
    학과명 varchar2(15),
    지도교수 number (5),
    면담시간 varchar2(15)
    );
   
    insert into 학생
    values (exam.nextval,201350050,'김태희','경기도고양시',25,'1985.3.22','컴퓨터공학',504,'목2교시')
   
   
    insert into 학생
    values (exam.nextval,201250006,'송혜교','서울영등포구',22,'1988.9.17' ,'컴퓨터공학',301,'월3교시')
   
    insert into 학생
    values (exam.nextval,201252110, '전지현', '경기도의정부시',24,'1986.4.30', '의상디자인',445,' 화4교시' )
    
    select * from 학생
    
    
    create table 학과(
    순번 number(10), 
    학과명 varchar2(20),
    전화번호 varchar2(20), 
    사무실위치 varchar2(20),
    학과장 varchar2(10),
    임명일자 varchar2(20) 
    );
    
    insert into 학과
    values (exam.nextval,'컴퓨터공학','123-4567-8901','e동 2층', '504', '2007년')
    
    insert into 학과
    values (exam.nextval,'의상디자인','234-5678-9012', 'a동 1층','301','2009')
    
    insert into 학과 
    values (exam.nextval,'식품영양','345-6789-67689', 'f동 8층','556','2000')
    
   select * from 학과
   
    insert into 학과
    values (exam.nextval,null,null,null,null,null);